package qgs.zisu.javaconcurrency.javaconcurrency.chapter10_LockTrick;

import java.util.Collection;

/**
 * @Author: 蔡翔
 * @Date: 2019/10/18 16:24
 * @Version 1.0
 */
public interface LOCK {
    // 其实在异常里，超时是不会被异常捕捉的。
    class TimeOutException extends Exception{
        public TimeOutException(String message){
            super(message);
        }
    }

    void lock() throws InterruptedException,TimeOutException;

    //超过mills 还没有执行完 就退出来。
    void lock(long mills) throws InterruptedException,TimeOutException;

    void unlock();

    Collection<Thread> getBlockedThread();

    int getBlockedSize();
}
